1. Field of the Invention
The system and method of the present invention relates to the computation of positions and timing using positioning data received from a global positioning system (GPS).
2. Art Background
The global positioning system has become increasingly popular as a position determination or time determination mechanism for a variety of applications. Using data received from GPS satellites, a receiving device can compute the position of the receiver and the current time. In early systems, a GPS receiver included a processor executing specially coded software to perform the measurements and compute navigation solutions (e.g., receiver position and time). The navigation solutions would then be transmitted to a user""s processing system which would then generate application solutions, e.g., determining distance moved since last measurement. Alternately, the GPS receiver manufacturers would customize receivers to perform processes to generate navigation solutions as well as the user application solutions.
With the ever-increasing processing power of microprocessors and the desire to reduce cost and overall power consumption, there has been the move to eliminate the processor in the receiver and have the user""s processor perform the navigation solution processing and the user application solution processing. Although a single microprocessor is capable of providing sufficient processing power and one processor consumes less power than two processors, integrating such functionality is not a simple task. First, processes performed to track satellites and processes performed to search for and acquire preliminary measurements are time critical; that is, as the positioning data is received from the satellites, the tracking calculations must be performed in order to maintain a closed tracking loop. Furthermore, certain preliminary measurement solutions must be performed within a certain window in order to timely process current data.
In order to manage the time critical nature of the processes, the processor that performs the tracking and measurement solutions calculations must manage a continuous stream of interrupts, i.e., the processor is interrupt driven. For example, interrupts are generated when the data is available in the correlators of the receiver, typically every millisecond for each GPS channel. Other processing, including the user application solution processing, may therefore be delayed significantly as the high priority interrupts take precedent. Furthermore, the situation can be particularly problematic if the application solution processing requires uninterrupted periods of time. In such a situation, the time critical interrupts may not be serviced in a timely manner resulting in failure to track satellites or in unreliable data being generated.
Furthermore, due to the above constraints, the end user is typically incapable of programming the end user application without corrupting the basic GPS algorithms or data generated therefrom. Thus, the GPS manufacturer""s specially trained programmers typically have to program the end user application.
In addition, the user""s control of the GPS receiver and the measurement information is quite limited. Typically, the system parameters are preset and not adjustable. User optimizations based upon usage or application are not available.
The system and method of the present invention provides a cost effective and efficient technique for performing time-critical tracking and measurement calculations for processing Global Positioning System (GPS) signals without conflicting with other time critical tasks in the user""s application. Furthermore, the system takes advantage of the processing power of the user system for executing non time-critical GPS processing in the user""s system. In addition, low power operation is achieved using a dual component system. Finally, the dual component system enables the end user to program custom applications incorporating Global Positioning System (GPS) technology.
In one embodiment the receiver is coupled to a channel unit which receives correlation energy data for each channel output from the correlators. The output from the correlators requires time critical processing to control the tracking loops for each of the channels in order to maximize the correlation energy and to generate intermediate measurement data. In one embodiment, the intermediate measurement data includes the carrier phase, code phase and Doppler data.
The system localizes processing which is common to many GPS solutions and partitions between tracking and position/velocity/time (PVT) data to separate not only the time critical processing portion but also to generate a low power component that is capable of being used for many different types of GPS solutions and applications.
The intermediate measurement data is transmitted to a processor, such as a user""s general purpose processor, that computes non time-critical processes of the navigation solution, for example, receiver position, velocity and time. The user processor therefore is easily configurable to compute user application solutions. As the navigation solution processes are non-time critical, processing conflicts with the user application are minimal. In addition, the processing power of the user""s processor is taken advantage of, thereby minimizing costs, while providing a workable system that lends itself easily to user customization.
In one embodiment, the channel unit includes an interface that is capable of receiving instructions from the user processor. The instructions include instructions to perform low level control of the channel unit and to receive channel status and data. Using these instructions, the user processor can specifically tailor the functionality and performance of the channel unit.